#from enum import Enum
class Solution:
    def lengthofLongestSubstring(self,s:str) -> int:
        k,res,c_dict=-1,0,{}
        #k:子串的左指针，指向第一个无重复字符的前一个位置。
        #res:当前最长子串
        #c_dict:字符字典(扫描过程中记住字符出现的最后位置）
        
        for i,c in enumerate(s):
            #用母串构成枚举
            if c in c_dict.keys() and c_dict[c]>k:
                #判断字符是否在字典中，如果在字典中，说明字符重复了。把k指向字典中上一次出现的and c_dict[c]>k
                print("c_dict[c]=",c,"k=",k)
                k=c_dict[c]
                c_dict[c]=i
            else:
                c_dict[c]=i
                res=max(res,i-k)        

        
        return res
s=Solution()
print("长度为：",s.lengthofLongestSubstring("tmamzuxt"))

                
        